7434ae6cd259b198fff9418efbf3199dced2ac24,spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/DirectMessageListenerContainer.java,SimpleConsumer,callExecuteListener,#Message#number#,708
Before Change
}
catch (Exception e) {
this.logger.error("Failed to invoke listener", e);
rollback(deliveryTag, e);
}
}
After Change
}
else {
this.logger.error("Failed to invoke listener", e);
if (this.transactionManager != null) {
if (this.transactionAttribute.rollbackOn(e)) {
throw e; // encompassing transaction will handle the rollback.
}
else {
if (this.logger.isDebugEnabled()) {
this.logger.debug("No rollback for " + e);
}
}
}
else {
rollback(deliveryTag, e);
// no need to rethrow e - we'd ignore it anyway, not throw to client
}
}